# Carga de paquetes
library(dplyr)
library(sf)
library(plotly)
library(DT)
library(leaflet)
# Carga de datos
junco_vulcani <-
st_read("https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/junco_vulcani-cr-registros.csv", options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
# Asignacion de CRS
st_crs(junco_vulcani) = 4326
# Datos geoespaciales de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
# Cruce de datos de cantones
junco_vulcani <-
junco_vulcani %>%
st_join(cantones["canton"])
El junco de los paramos (Junco Vulcani) habita en zonas abiertas en elevaciones altas, usualmente por encima de los 300 m. Suele posarse en pequeños arbustos, generalmente en parejas o en grupos peque;os. Suu rango es muy limitado> solo en Costa Rica o en el oeste de Panama (eBird, Junco Vulcani)
# Tabla de registros de presencia
junco_vulcani %>%
st_drop_geometry() %>%
select(stateProvince, canton, locality, eventDate) %>%
datatable(colnames = c(
"Provincia",
"Cantón",
"Localidad",
"Fecha"),
options = list(searchHighlight = TRUE)
)
#Grafico de estacionalidad
junco_vulcani %>%
st_drop_geometry() %>%
group_by(mes = format(as.Date(eventDate, "%Y-%m-%d"), "%m")) %>%
summarize(suma_registros = n()) %>%
filter(!is.na(mes)) %>%
plot_ly(x = ~ mes,
y = ~ suma_registros,
type = "scatter", mode = "markers", fill = "tozeroy", fillcolor = "purple") %>%
layout(title = "Estacionalidad",
xaxis = list(title = "Mes"),
yaxis = list(title = "Cantidad de registros"))
#Grafico de historial
junco_vulcani %>%
st_drop_geometry() %>%
group_by(año = format(as.Date(eventDate, "%Y-%m-%d"), "%Y")) %>%
summarize(suma_registros = n()) %>%
filter(!is.na(año)) %>%
filter(año >= 2011) %>%
plot_ly(x = ~ año,
y = ~ suma_registros,
type = "bar", color = "green") %>%
layout(title = "Estacionalidad",
xaxis = list(title = "Año"),
yaxis = list(title = "Cantidad de registros"))
# Mapa de registros de presencia
junco_vulcani %>%
select(stateProvince,
canton,
locality,
eventDate) %>%
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addCircleMarkers(
stroke = F,
radius = 4,
fillColor = 'gray',
fillOpacity = 1,
popup = paste(
junco_vulcani$stateProvince,
junco_vulcani$canton,
junco_vulcani$locality,
junco_vulcani$eventDate,
sep = '<br/>'
),
group = "Junco Vulcani"
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
overlayGroups = c("Junco Vulcani")
) %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)